package com.lekang.quartz.task;

import com.lekang.service.ITaskGenerationService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * 任务生成定时任务
 * 
 * @author lekang
 * @date 2025-10-23
 */
@Component("taskGenerationJob")
public class TaskGenerationJob 
{
    private static final Logger log = LoggerFactory.getLogger(TaskGenerationJob.class);

    @Autowired
    private ITaskGenerationService taskGenerationService;

    /**
     * 生成月度任务（每月1号00:00:00执行）
     */
    public void generateMonthlyTasks()
    {
        try {
            log.info("====== 开始执行月度任务生成定时任务 ======");
            int count = taskGenerationService.generateMonthlyTasksForAllElderly();
            log.info("====== 月度任务生成完成，共生成 {} 个任务 ======", count);
        } catch (Exception e) {
            log.error("====== 月度任务生成失败 ======", e);
        }
    }

    /**
     * 刷新任务状态（每日00:00:00执行）
     */
    public void refreshTaskStatus()
    {
        try {
            log.info("====== 开始执行任务状态刷新定时任务 ======");
            int count = taskGenerationService.refreshTaskStatus();
            log.info("====== 任务状态刷新完成，共处理 {} 个任务 ======", count);
        } catch (Exception e) {
            log.error("====== 任务状态刷新失败 ======", e);
        }
    }
}

